<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用promise封装script加载文件脚本</title>
</head>
<body>
    
</body>
<script>
    function loadScript(url){
        return new Promise((resolve,reject)=>{
            let script = document.createElement('script')        
            script.src = url
            script.onload = ()=>{
                resolve(script)
            }
            document.body.appendChild(script)                                     
            script.onerror = ()=>{
                reject('error')
            }   
        })
    }
    /*
        这里有两种写法  promise的出现就是为了解决回调地狱的问题
        下面的写法1是正确的  成功的解决了回调地狱  但是promise其实也可以使用promise的使用
    */
    loadScript('./js/a.js').then((res)=>{
        console.log(res)
        return loadScript('./js/b.js')
    }).then((res)=>{
        console.log(res)
    })

    // 写法2  不建议这样写
    loadScript('./js/a/js').then((res)=>{
        console.log(res)
        loadScript('./js/b.js').then((res)=>{
            console.log(res)
        })
    })
</script>
</html>